--- a/net/minecraft/world/gen/feature/template/StructureProcessor.java
+++ b/net/minecraft/world/gen/feature/template/StructureProcessor.java
@@ -6,7 +6,37 @@
 
 public abstract class StructureProcessor {
    @Nullable
-   public abstract Template.BlockInfo func_230386_a_(IWorldReader p_230386_1_, BlockPos p_230386_2_, BlockPos p_230386_3_, Template.BlockInfo p_230386_4_, Template.BlockInfo p_230386_5_, PlacementSettings p_230386_6_);
+   @Deprecated //Forge: Use process below, with the Template context
+   public Template.BlockInfo func_230386_a_(IWorldReader p_230386_1_, BlockPos p_230386_2_, BlockPos p_230386_3_, Template.BlockInfo p_230386_4_, Template.BlockInfo p_230386_5_, PlacementSettings p_230386_6_) {
+      return p_230386_5_;
+   }
 
    protected abstract IStructureProcessorType<?> func_215192_a();
+
+   @Nullable
+   public Template.BlockInfo process(IWorldReader p_230386_1_, BlockPos p_230386_2_, BlockPos p_230386_3_, Template.BlockInfo p_230386_4_, Template.BlockInfo p_230386_5_, PlacementSettings p_230386_6_, @Nullable Template template) {
+      return func_230386_a_(p_230386_1_, p_230386_2_, p_230386_3_, p_230386_4_, p_230386_5_, p_230386_6_);
+   }
+
+   /**
+    * FORGE: Add entity processing.
+    * <p>
+    * Use this method to process entities from a structure in much the same way as
+    * blocks, parameters are analogous.
+    *
+    * @param world
+    * @param seedPos
+    * @param rawEntityInfo
+    * @param entityInfo
+    * @param placementSettings
+    * @param template
+    *
+    * @see #process(IWorldReader, BlockPos,
+    *      net.minecraft.world.gen.feature.template.Template.BlockInfo,
+    *      net.minecraft.world.gen.feature.template.Template.BlockInfo,
+    *      PlacementSettings)
+    */
+   public Template.EntityInfo processEntity(IWorldReader world, BlockPos seedPos, Template.EntityInfo rawEntityInfo, Template.EntityInfo entityInfo, PlacementSettings placementSettings, Template template) {
+      return entityInfo;
+   }
 }
