stuff added idk commit
@ -0,0 +1,76 @@
|
|||||||
|
package com.zivilon.cinder_loe.client.model;
|
||||||
|
// Made with Blockbench 4.12.4
|
||||||
|
// Exported for Minecraft version 1.7 - 1.12
|
||||||
|
// Paste this class into your mod and generate all required imports
|
||||||
|
|
||||||
|
|
||||||
|
import lotr.client.model.LOTRModelBiped;
|
||||||
|
import net.minecraft.client.model.ModelBox;
|
||||||
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
|
public class ModelDragonHelm extends LOTRModelBiped {
|
||||||
|
private final ModelRenderer Hemlet;
|
||||||
|
private final ModelRenderer Backer2_r1;
|
||||||
|
private final ModelRenderer DragonBottom_r1;
|
||||||
|
private final ModelRenderer DragonTop_r1;
|
||||||
|
|
||||||
|
public ModelDragonHelm(float f) {
|
||||||
|
super(f);
|
||||||
|
textureWidth = 64;
|
||||||
|
textureHeight = 64;
|
||||||
|
|
||||||
|
Hemlet = new ModelRenderer(this);
|
||||||
|
Hemlet.setRotationPoint(0.0F, -9.0F, 8.0F);
|
||||||
|
Hemlet.cubeList.add(new ModelBox(Hemlet, 0, 16, -4.0F, 1.0F, -12.0F, 8, 8, 8, 1.0F));
|
||||||
|
Hemlet.cubeList.add(new ModelBox(Hemlet, 57, 25, -3.0F, 1.0F, -2.8F, 3, 6, 0, 0.0F));
|
||||||
|
Hemlet.cubeList.add(new ModelBox(Hemlet, 33, 14, 5.2F, 1.0F, -15.0F, 0, 7, 11, 0.0F));
|
||||||
|
Hemlet.cubeList.add(new ModelBox(Hemlet, 33, 14, -5.2F, 1.0F, -15.0F, 0, 7, 11, 0.0F));
|
||||||
|
|
||||||
|
Backer2_r1 = new ModelRenderer(this);
|
||||||
|
Backer2_r1.setRotationPoint(1.0F, 7.0F, -2.5F);
|
||||||
|
setRotationAngle(Backer2_r1, 0.0F, 3.1416F, 0.0F);
|
||||||
|
Backer2_r1.cubeList.add(new ModelBox(Backer2_r1, 57, 25, -2.0F, -6.0F, 0.7F, 3, 6, 0, 0.0F));
|
||||||
|
|
||||||
|
DragonBottom_r1 = new ModelRenderer(this);
|
||||||
|
DragonBottom_r1.setRotationPoint(1.0F, 10.0F, 0.0F);
|
||||||
|
setRotationAngle(DragonBottom_r1, 0.0F, 3.1416F, 0.0F);
|
||||||
|
DragonBottom_r1.cubeList.add(new ModelBox(DragonBottom_r1, 23, 45, 1.0F, -10.0F, -1.5F, 0, 10, 7, 0.0F));
|
||||||
|
|
||||||
|
DragonTop_r1 = new ModelRenderer(this);
|
||||||
|
DragonTop_r1.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
setRotationAngle(DragonTop_r1, 0.0F, 3.1416F, 0.0F);
|
||||||
|
DragonTop_r1.cubeList.add(new ModelBox(DragonTop_r1, 17, 32, 0.0F, -5.0F, -0.5F, 0, 5, 15, 0.0F));
|
||||||
|
|
||||||
|
// Added biped head to recognize that everything is a child of the head
|
||||||
|
this.bipedHead.cubeList.clear();
|
||||||
|
bipedHead = new ModelRenderer(this);
|
||||||
|
bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
bipedHead.cubeList.add(new ModelBox(bipedHead, 0, 0, -4.0F, -8.0F, -4.0F, 8, 8, 8, 1.0F));
|
||||||
|
|
||||||
|
//Move the children to after setting up biped head for readability, assigned Hemlet to be child of bipedHead
|
||||||
|
Hemlet.addChild(Backer2_r1);
|
||||||
|
Hemlet.addChild(DragonBottom_r1);
|
||||||
|
Hemlet.addChild(DragonTop_r1);
|
||||||
|
this.bipedHead.addChild(this.Hemlet);
|
||||||
|
|
||||||
|
//Clear all other body parts from model
|
||||||
|
this.bipedHeadwear.cubeList.clear();
|
||||||
|
this.bipedBody.cubeList.clear();
|
||||||
|
this.bipedRightArm.cubeList.clear();
|
||||||
|
this.bipedLeftArm.cubeList.clear();
|
||||||
|
this.bipedRightLeg.cubeList.clear();
|
||||||
|
this.bipedLeftLeg.cubeList.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
|
||||||
|
bipedHead.render(f5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
|
||||||
|
modelRenderer.rotateAngleX = x;
|
||||||
|
modelRenderer.rotateAngleY = y;
|
||||||
|
modelRenderer.rotateAngleZ = z;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,117 @@
|
|||||||
|
package com.zivilon.cinder_loe.client.model;// Made with Blockbench 4.12.4
|
||||||
|
// Exported for Minecraft version 1.7 - 1.12
|
||||||
|
// Paste this class into your mod and generate all required imports
|
||||||
|
|
||||||
|
|
||||||
|
import lotr.client.model.LOTRModelBiped;
|
||||||
|
import net.minecraft.client.model.ModelBox;
|
||||||
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
|
public class ModelEsgarothHelmet extends LOTRModelBiped {
|
||||||
|
private final ModelRenderer Hemlet;
|
||||||
|
private final ModelRenderer FrontVisor;
|
||||||
|
private final ModelRenderer bb_main2;
|
||||||
|
private final ModelRenderer bb_main;
|
||||||
|
private final ModelRenderer plumeee;
|
||||||
|
private final ModelRenderer plume4_r1;
|
||||||
|
private final ModelRenderer plume3_r1;
|
||||||
|
private final ModelRenderer plume2_r1;
|
||||||
|
private final ModelRenderer plume_r1;
|
||||||
|
private final ModelRenderer plume5_r1;
|
||||||
|
private final ModelRenderer cube_r1;
|
||||||
|
|
||||||
|
public ModelEsgarothHelmet(float f) {
|
||||||
|
super(f);
|
||||||
|
textureWidth = 64;
|
||||||
|
textureHeight = 64;
|
||||||
|
|
||||||
|
Hemlet = new ModelRenderer(this);
|
||||||
|
Hemlet.setRotationPoint(0.0F, 24.0F, 0.0F);
|
||||||
|
|
||||||
|
|
||||||
|
FrontVisor = new ModelRenderer(this);
|
||||||
|
FrontVisor.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
FrontVisor.cubeList.add(new ModelBox(FrontVisor, 32, 0, -6.0F, -29.3F, -6.0F, 12, -1, 4, 0.0F));
|
||||||
|
FrontVisor.cubeList.add(new ModelBox(FrontVisor, 14, 43, 0.0F, -35.0F, -6.0F, 0, 11, 12, 0.0F));
|
||||||
|
|
||||||
|
bb_main2 = new ModelRenderer(this);
|
||||||
|
bb_main2.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
bb_main2.cubeList.add(new ModelBox(bb_main2, 0, 21, -3.5F, -30.4F, -5.5F, 7, -3, 11, 0.0F));
|
||||||
|
|
||||||
|
bb_main = new ModelRenderer(this);
|
||||||
|
bb_main.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
bb_main.cubeList.add(new ModelBox(bb_main, 0, 0, -4.0F, -32.0F, -4.0F, 8, 8, 8, 1.0F));
|
||||||
|
bb_main.cubeList.add(new ModelBox(bb_main, 0, 33, -5.5F, -28.0F, -6.0F, 11, 5, 12, 0.0F));
|
||||||
|
|
||||||
|
plumeee = new ModelRenderer(this);
|
||||||
|
plumeee.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
|
||||||
|
|
||||||
|
plume4_r1 = new ModelRenderer(this);
|
||||||
|
plume4_r1.setRotationPoint(0.0F, -35.0F, 0.0F);
|
||||||
|
setRotationAngle(plume4_r1, -0.829F, 1.2217F, -1.309F);
|
||||||
|
plume4_r1.cubeList.add(new ModelBox(plume4_r1, 44, 14, 0.0F, -9.0F, -3.0F, 0, 9, 6, 0.0F));
|
||||||
|
|
||||||
|
plume3_r1 = new ModelRenderer(this);
|
||||||
|
plume3_r1.setRotationPoint(0.0F, -35.0F, 0.0F);
|
||||||
|
setRotationAngle(plume3_r1, -0.3054F, -0.829F, 0.829F);
|
||||||
|
plume3_r1.cubeList.add(new ModelBox(plume3_r1, 44, 14, 0.0F, -9.0F, -3.0F, 0, 9, 6, 0.0F));
|
||||||
|
|
||||||
|
plume2_r1 = new ModelRenderer(this);
|
||||||
|
plume2_r1.setRotationPoint(0.0F, -35.0F, 0.0F);
|
||||||
|
setRotationAngle(plume2_r1, -0.9163F, -1.0036F, 0.8727F);
|
||||||
|
plume2_r1.cubeList.add(new ModelBox(plume2_r1, 44, 14, 0.0F, -9.0F, -3.0F, 0, 9, 6, 0.0F));
|
||||||
|
|
||||||
|
plume_r1 = new ModelRenderer(this);
|
||||||
|
plume_r1.setRotationPoint(0.0F, -35.0F, 0.0F);
|
||||||
|
setRotationAngle(plume_r1, 0.0873F, 1.1345F, -0.6981F);
|
||||||
|
plume_r1.cubeList.add(new ModelBox(plume_r1, 44, 14, 0.0F, -9.0F, -3.0F, 0, 9, 6, 0.0F));
|
||||||
|
|
||||||
|
plume5_r1 = new ModelRenderer(this);
|
||||||
|
plume5_r1.setRotationPoint(0.0F, -35.0F, 0.0F);
|
||||||
|
setRotationAngle(plume5_r1, -0.5672F, -1.1781F, 0.3927F);
|
||||||
|
plume5_r1.cubeList.add(new ModelBox(plume5_r1, 44, 14, 0.0F, -9.0F, -3.0F, 0, 9, 6, 0.0F));
|
||||||
|
|
||||||
|
cube_r1 = new ModelRenderer(this);
|
||||||
|
cube_r1.setRotationPoint(0.0F, -33.0F, 0.0F);
|
||||||
|
setRotationAngle(cube_r1, 0.0F, -0.8727F, 0.0F);
|
||||||
|
cube_r1.cubeList.add(new ModelBox(cube_r1, 0, 51, -1.0F, -2.0F, -1.0F, 2, 2, 2, 0.0F));
|
||||||
|
|
||||||
|
this.bipedHead.cubeList.clear();
|
||||||
|
|
||||||
|
bipedHead = new ModelRenderer(this);
|
||||||
|
bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
bipedHead.cubeList.add(new ModelBox(bipedHead, 0, 0, -4.0F, -8.0F, -4.0F, 8, 8, 8, 1.0F));
|
||||||
|
|
||||||
|
this.bipedHead.addChild(Hemlet);
|
||||||
|
this.bipedHead.addChild(FrontVisor);
|
||||||
|
this.bipedHead.addChild(bb_main2);
|
||||||
|
this.bipedHead.addChild(bb_main);
|
||||||
|
this.bipedHead.addChild(plumeee);
|
||||||
|
this.bipedHead.addChild(plume4_r1);
|
||||||
|
this.bipedHead.addChild(plume3_r1);
|
||||||
|
this.bipedHead.addChild(plume2_r1);
|
||||||
|
this.bipedHead.addChild(plume_r1);
|
||||||
|
this.bipedHead.addChild(plume5_r1);
|
||||||
|
this.bipedHead.addChild(cube_r1);
|
||||||
|
|
||||||
|
this.bipedHeadwear.cubeList.clear();
|
||||||
|
this.bipedBody.cubeList.clear();
|
||||||
|
this.bipedRightArm.cubeList.clear();
|
||||||
|
this.bipedLeftArm.cubeList.clear();
|
||||||
|
this.bipedRightLeg.cubeList.clear();
|
||||||
|
this.bipedLeftLeg.cubeList.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
|
||||||
|
bipedHead.render(f5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
|
||||||
|
modelRenderer.rotateAngleX = x;
|
||||||
|
modelRenderer.rotateAngleY = y;
|
||||||
|
modelRenderer.rotateAngleZ = z;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.zivilon.cinder_loe.client.model;
|
package com.zivilon.cinder_loe.client.model.npc;
|
||||||
|
|
||||||
import net.minecraft.client.model.ModelBase;
|
import net.minecraft.client.model.ModelBase;
|
||||||
import net.minecraft.client.model.ModelRenderer;
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.zivilon.cinder_loe.client.model;
|
package com.zivilon.cinder_loe.client.model.npc;
|
||||||
|
|
||||||
import lotr.common.LOTRMod;
|
import lotr.common.LOTRMod;
|
||||||
import net.minecraft.client.model.ModelBase;
|
import net.minecraft.client.model.ModelBase;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.zivilon.cinder_loe.client.model;
|
package com.zivilon.cinder_loe.client.model.npc;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
@ -1,9 +1,8 @@
|
|||||||
package com.zivilon.cinder_loe.client.model;
|
package com.zivilon.cinder_loe.client.model.npc;
|
||||||
|
|
||||||
import net.minecraft.client.model.ModelBase;
|
import net.minecraft.client.model.ModelBase;
|
||||||
import net.minecraft.client.model.ModelBiped;
|
import net.minecraft.client.model.ModelBiped;
|
||||||
import net.minecraft.client.model.ModelRenderer;
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ModelSunkenSkeleton - Cleric_red
|
* ModelSunkenSkeleton - Cleric_red
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.structures;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.AngmarOrcBrewer;
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.AngmarOrcButcher;
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.AngmarOrcSmith;
|
||||||
|
import lotr.common.entity.npc.LOTREntityAngmarOrcTrader;
|
||||||
|
import lotr.common.entity.npc.LOTREntityNPC;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenAngmarCamp;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
@Mixin(LOTRWorldGenAngmarCamp.class)
|
||||||
|
public class MixinLOTRWorldGenAngmarCamp {
|
||||||
|
|
||||||
|
@Overwrite(remap = false)
|
||||||
|
protected LOTREntityNPC getCampCaptain(World world, Random random) {
|
||||||
|
int pick = random.nextInt(5);
|
||||||
|
switch (pick) {
|
||||||
|
case 1:
|
||||||
|
return new AngmarOrcBrewer(world);
|
||||||
|
case 2:
|
||||||
|
return new AngmarOrcButcher(world);
|
||||||
|
case 3:
|
||||||
|
return new AngmarOrcSmith(world);
|
||||||
|
case 4:
|
||||||
|
return new LOTREntityAngmarOrcTrader(world);
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.structures;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.*;
|
||||||
|
import lotr.common.entity.npc.LOTREntityDolGuldurOrcTrader;
|
||||||
|
import lotr.common.entity.npc.LOTREntityNPC;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenDolGuldurCamp;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
@Mixin(LOTRWorldGenDolGuldurCamp.class)
|
||||||
|
public class MixinLOTRWorldGenDolGuldurCamp {
|
||||||
|
|
||||||
|
@Overwrite(remap = false)
|
||||||
|
protected LOTREntityNPC getCampCaptain(World world, Random random) {
|
||||||
|
int pick = random.nextInt(5);
|
||||||
|
switch (pick) {
|
||||||
|
case 1:
|
||||||
|
return new DolGuldurOrcBrewer(world);
|
||||||
|
case 2:
|
||||||
|
return new DolGuldurOrcButcher(world);
|
||||||
|
case 3:
|
||||||
|
return new DolGuldurOrcSmith(world);
|
||||||
|
case 4:
|
||||||
|
return new LOTREntityDolGuldurOrcTrader(world);
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.structures;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.*;
|
||||||
|
import lotr.common.entity.npc.LOTREntityDolGuldurOrcTrader;
|
||||||
|
import lotr.common.entity.npc.LOTREntityGundabadOrcMercenaryCaptain;
|
||||||
|
import lotr.common.entity.npc.LOTREntityGundabadOrcTrader;
|
||||||
|
import lotr.common.entity.npc.LOTREntityNPC;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenDolGuldurCamp;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenGundabadCamp;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
@Mixin(LOTRWorldGenGundabadCamp.class)
|
||||||
|
public class MixinLOTRWorldGenGundabadCamp {
|
||||||
|
|
||||||
|
@Overwrite(remap = false)
|
||||||
|
protected LOTREntityNPC getCampCaptain(World world, Random random) {
|
||||||
|
int pick = random.nextInt(5);
|
||||||
|
switch (pick) {
|
||||||
|
case 1:
|
||||||
|
return new GundabadOrcBrewer(world);
|
||||||
|
case 2:
|
||||||
|
return new GundabadOrcButcher(world);
|
||||||
|
case 3:
|
||||||
|
return new GundabadOrcSmith(world);
|
||||||
|
case 4:
|
||||||
|
return new LOTREntityGundabadOrcTrader(world);
|
||||||
|
default:
|
||||||
|
return new LOTREntityGundabadOrcMercenaryCaptain(world);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,149 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.structures;
|
||||||
|
|
||||||
|
import com.google.common.math.IntMath;
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.HalfTrollBrewer;
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.HalfTrollButcher;
|
||||||
|
import lotr.common.LOTRMod;
|
||||||
|
import lotr.common.entity.npc.LOTREntityHalfTroll;
|
||||||
|
import lotr.common.world.structure.LOTRChestContents;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenStructureBase2;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenHalfTrollHouse;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.ModifyVariable;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
@Mixin(LOTRWorldGenHalfTrollHouse.class)
|
||||||
|
public abstract class MixinLOTRWorldGenHalfTrollHouse extends LOTRWorldGenStructureBase2 {
|
||||||
|
public MixinLOTRWorldGenHalfTrollHouse(boolean flag) {
|
||||||
|
super(flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author KeyLime + Mevans
|
||||||
|
* @reason Adding 2 other traders with a 1/5 chance of spawning inside a regular half troll house
|
||||||
|
*/
|
||||||
|
@Overwrite(remap = false)
|
||||||
|
public boolean generateWithSetRotation(World world, Random random, int i, int j, int k, int rotation) {
|
||||||
|
int j1;
|
||||||
|
int k1;
|
||||||
|
int i1;
|
||||||
|
int radius = 5;
|
||||||
|
int height = 6 + random.nextInt(4);
|
||||||
|
this.setOriginAndRotation(world, i, j, k, rotation, radius + 1);
|
||||||
|
if (this.restrictions) {
|
||||||
|
for (i1 = -radius; i1 <= radius; ++i1) {
|
||||||
|
for (k1 = -radius; k1 <= radius; ++k1) {
|
||||||
|
j1 = this.getTopBlock(world, i1, k1);
|
||||||
|
Block block = this.getBlock(world, i1, j1 - 1, k1);
|
||||||
|
if (block == Blocks.grass) continue;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i1 = -radius; i1 <= radius; ++i1) {
|
||||||
|
for (k1 = -radius; k1 <= radius; ++k1) {
|
||||||
|
for (j1 = 0; j1 <= height; ++j1) {
|
||||||
|
double f = (double)(i1 * i1 + k1 * k1) / 2.0 - (double)(8 - j1);
|
||||||
|
if (!(f < 8.0)) continue;
|
||||||
|
if (j1 == 0) {
|
||||||
|
for (int j2 = 0; !(j2 != 0 && this.isOpaque(world, i1, j2, k1) || this.getY(j2) < 0); --j2) {
|
||||||
|
this.setBlockAndMetadata(world, i1, j2, k1, Blocks.hardened_clay, 0);
|
||||||
|
this.setGrassToDirt(world, i1, j2 - 1, k1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (f > 0.0) {
|
||||||
|
if (j1 <= 1 || j1 == height - 1) {
|
||||||
|
this.setBlockAndMetadata(world, i1, j1, k1, Blocks.stained_hardened_clay, 12);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
this.setBlockAndMetadata(world, i1, j1, k1, Blocks.hardened_clay, 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (j1 == 0) {
|
||||||
|
this.setBlockAndMetadata(world, i1, j1, k1, Blocks.cobblestone, 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
this.setAir(world, i1, j1, k1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i1 = -1; i1 <= 1; ++i1) {
|
||||||
|
for (k1 = -radius; k1 <= -radius + 1; ++k1) {
|
||||||
|
this.setBlockAndMetadata(world, i1, 0, k1, Blocks.cobblestone, 0);
|
||||||
|
for (j1 = 1; j1 <= 3; ++j1) {
|
||||||
|
this.setAir(world, i1, j1, k1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.setBlockAndMetadata(world, i1, 4, -radius, LOTRMod.woodSlabSingle, 3);
|
||||||
|
}
|
||||||
|
this.setBlockAndMetadata(world, -2, 2, -radius, LOTRMod.fence, 3);
|
||||||
|
this.setBlockAndMetadata(world, -2, 3, -radius, LOTRMod.woodSlabSingle, 3);
|
||||||
|
this.setBlockAndMetadata(world, 2, 2, -radius, LOTRMod.fence, 3);
|
||||||
|
this.setBlockAndMetadata(world, 2, 3, -radius, LOTRMod.woodSlabSingle, 3);
|
||||||
|
for (i1 = -2; i1 <= 2; ++i1) {
|
||||||
|
for (k1 = -2; k1 <= 2; ++k1) {
|
||||||
|
int i2 = Math.abs(i1);
|
||||||
|
int k2 = Math.abs(k1);
|
||||||
|
if (i2 == 2 || k2 == 2 || i2 == 0 && k2 == 0) {
|
||||||
|
for (int j12 = -4; j12 <= 0; ++j12) {
|
||||||
|
this.setBlockAndMetadata(world, i1, j12, k1, Blocks.stained_hardened_clay, 12);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (i2 != 1 && k2 != 1) continue;
|
||||||
|
this.setBlockAndMetadata(world, i1, -4, k1, LOTRMod.hearth, 0);
|
||||||
|
this.setBlockAndMetadata(world, i1, -3, k1, (Block)Blocks.fire, 0);
|
||||||
|
this.setBlockAndMetadata(world, i1, -2, k1, Blocks.air, 0);
|
||||||
|
this.setBlockAndMetadata(world, i1, -1, k1, Blocks.air, 0);
|
||||||
|
this.setBlockAndMetadata(world, i1, 0, k1, Blocks.iron_bars, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.setBlockAndMetadata(world, 0, 0, 0, Blocks.cobblestone, 0);
|
||||||
|
for (int l = 0; l < 8; ++l) {
|
||||||
|
int i12 = (2 + (l + 1) / 2 % 2) * IntMath.pow((int)-1, (int)(l / 4));
|
||||||
|
int k12 = (2 + (l + 3) / 2 % 2) * IntMath.pow((int)-1, (int)((l + 2) / 4));
|
||||||
|
this.setBlockAndMetadata(world, i12, 1, k12, Blocks.cobblestone, 0);
|
||||||
|
this.setBlockAndMetadata(world, i12, 2, k12, LOTRMod.fence, 3);
|
||||||
|
this.setBlockAndMetadata(world, i12, 3, k12, LOTRMod.fence, 3);
|
||||||
|
}
|
||||||
|
this.setBlockAndMetadata(world, -4, 3, 0, LOTRMod.fence, 3);
|
||||||
|
this.setAir(world, -5, 3, 0);
|
||||||
|
this.setBlockAndMetadata(world, 4, 3, 0, LOTRMod.fence, 3);
|
||||||
|
this.setAir(world, 5, 3, 0);
|
||||||
|
this.setBlockAndMetadata(world, 0, 3, 4, LOTRMod.fence, 3);
|
||||||
|
this.setAir(world, 0, 3, 5);
|
||||||
|
for (i1 = -3; i1 <= 3; i1 += 6) {
|
||||||
|
this.setBlockAndMetadata(world, i1, 1, -1, (Block)Blocks.stone_slab, 11);
|
||||||
|
this.setBlockAndMetadata(world, i1, 1, 1, (Block)Blocks.stone_slab, 11);
|
||||||
|
this.placeChest(world, random, i1, 1, 0, LOTRMod.chestBasket, 0, LOTRChestContents.HALF_TROLL_HOUSE);
|
||||||
|
}
|
||||||
|
this.setBlockAndMetadata(world, -1, 1, 3, Blocks.crafting_table, 0);
|
||||||
|
this.setBlockAndMetadata(world, 0, 1, 3, (Block)Blocks.stone_slab, 11);
|
||||||
|
this.setBlockAndMetadata(world, 1, 1, 3, LOTRMod.halfTrollTable, 0);
|
||||||
|
|
||||||
|
// choose random HalfTroll variant
|
||||||
|
LOTREntityHalfTroll halfTroll;
|
||||||
|
int pick = random.nextInt(5);
|
||||||
|
if (pick < 3) {
|
||||||
|
halfTroll = new LOTREntityHalfTroll(world);
|
||||||
|
} else if (pick == 3) {
|
||||||
|
halfTroll = new HalfTrollBrewer(world);
|
||||||
|
} else {
|
||||||
|
halfTroll = new HalfTrollButcher(world);
|
||||||
|
}
|
||||||
|
|
||||||
|
// spawn with home
|
||||||
|
this.spawnNPCAndSetHome(halfTroll, world, 0, 1, 0, 16);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.structures;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.*;
|
||||||
|
import lotr.common.entity.npc.LOTREntityAngmarOrcTrader;
|
||||||
|
import lotr.common.entity.npc.LOTREntityNPC;
|
||||||
|
import lotr.common.entity.npc.LOTREntityUrukHaiMercenaryCaptain;
|
||||||
|
import lotr.common.entity.npc.LOTREntityUrukHaiTrader;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenAngmarCamp;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenUrukCamp;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
@Mixin(LOTRWorldGenUrukCamp.class)
|
||||||
|
public class MixinLOTRWorldGenIsengardCamp {
|
||||||
|
|
||||||
|
@Overwrite(remap = false)
|
||||||
|
protected LOTREntityNPC getCampCaptain(World world, Random random) {
|
||||||
|
int pick = random.nextInt(5);
|
||||||
|
switch (pick) {
|
||||||
|
case 1:
|
||||||
|
return new IsengardOrcBrewer(world);
|
||||||
|
case 2:
|
||||||
|
return new IsengardOrcButcher(world);
|
||||||
|
case 3:
|
||||||
|
return new IsengardOrcSmith(world);
|
||||||
|
case 4:
|
||||||
|
return new LOTREntityUrukHaiTrader(world);
|
||||||
|
default:
|
||||||
|
return new LOTREntityUrukHaiMercenaryCaptain(world);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.structures;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.entity.npc.orc.trader.*;
|
||||||
|
import lotr.common.entity.npc.LOTREntityDolGuldurOrcTrader;
|
||||||
|
import lotr.common.entity.npc.LOTREntityMordorOrcTrader;
|
||||||
|
import lotr.common.entity.npc.LOTREntityNPC;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenDolGuldurCamp;
|
||||||
|
import lotr.common.world.structure2.LOTRWorldGenMordorCamp;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
@Mixin(LOTRWorldGenMordorCamp.class)
|
||||||
|
public class MixinLOTRWorldGenMordorCamp {
|
||||||
|
|
||||||
|
@Overwrite(remap = false)
|
||||||
|
protected LOTREntityNPC getCampCaptain(World world, Random random) {
|
||||||
|
int pick = random.nextInt(5);
|
||||||
|
switch (pick) {
|
||||||
|
case 1:
|
||||||
|
return new MordorOrcBrewer(world);
|
||||||
|
case 2:
|
||||||
|
return new MordorOrcButcher(world);
|
||||||
|
case 3:
|
||||||
|
return new MordorOrcSmith(world);
|
||||||
|
case 4:
|
||||||
|
return new LOTREntityMordorOrcTrader(world);
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.zivilon.cinder_loe.mixins;
|
package com.zivilon.cinder_loe.mixins.structures;
|
||||||
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Overwrite;
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 831 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 693 B |
|
After Width: | Height: | Size: 411 B |
|
After Width: | Height: | Size: 542 B |
|
After Width: | Height: | Size: 435 B |